package com.common.auth;

/**
 * 认证信息存储接口
 * @author guanghong.ji
 * @date   2018年6月8日
 */
public interface MyAuthenRepository {

	/**
	 * 设置token过期时长，单位秒
	 * @param timeLong token过期时长，大于0才有效
	 */
	void setTokenExpireTimeLong(Long timeLong);
	
	/**
	 * 保存用户认证信息
	 * @param info 用户认证信息
	 * @return 保存后的用户认证信息
	 */
	MyAuthenticationInfo saveAuthenInfo(MyAuthenticationInfo info);
	
	/**
	 * 刷新token过期时间
	 * @param token
	 * @return 成功或失败
	 */
	boolean freshToken(String token);
	
	/**
	 * 删除token
	 * @param token
	 * @return
	 */
	boolean removeAuthenInfo(String token);
	
	/**
	 * 根据token获取用户认证信息
	 * @param token
	 * @return 认证信息
	 */
	MyAuthenticationInfo getAuthenByToken(String token);
	
	/**
	 * 根据用户id获取用户认证信息
	 * @param userId
	 * @return 认证信息
	 */
	MyAuthenticationInfo getAuthenByUserId(Integer userId);
}
